home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / smb_netusergetinfo.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  183 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10892);
  10.  script_version("$Revision: 1.10 $");
  11.  name["english"] = "Obtains user information";
  12.  
  13.  script_name(english:name["english"]);
  14.  
  15.  desc["english"] = "
  16. This script requests informations about each NT user
  17. and stores it in the KB
  18. Risk factor : None";
  19.  
  20.  
  21.  
  22.  script_description(english:desc["english"]);
  23.  
  24.  summary["english"] = "Implements NetUserGetInfo()";
  25.  
  26.  
  27.  script_summary(english:summary["english"]);
  28.  
  29.  script_category(ACT_GATHER_INFO);
  30.  
  31.  
  32.  script_copyright(english:"This script is Copyright (C) 2002 Renaud Deraison");
  33.  family["english"] = "Windows : User management";
  34.   
  35.  script_family(english:family["english"]);
  36.  script_dependencies("smb_scope.nasl",
  37.               "netbios_name_get.nasl",
  38.               "smb_login.nasl", 
  39.              "smb_sid2user.nasl",
  40.              "snmp_lanman_users.nasl");
  41.                       
  42.  script_require_keys("SMB/transport",
  43.               "SMB/name", 
  44.               "SMB/login", 
  45.              "SMB/password", 
  46.              "SMB/Users/enumerated",
  47.              "SMB/test_domain");
  48.  script_exclude_keys("SMB/samba");
  49.  script_require_ports(139, 445);
  50.  exit(0);
  51. }
  52.  
  53. if ( get_kb_item("SMB/samba") ) exit(0);
  54.  
  55. d = get_kb_item("SMB/test_domain");
  56. if(!d)exit(0);
  57.  
  58. include("smb_nt.inc");
  59. port = kb_smb_transport();
  60. if(!port)port = 139;
  61. if(!get_port_state(port))exit(0);
  62.  
  63. soc = open_sock_tcp(port);
  64. if(!soc)exit(0);
  65.  
  66. login = kb_smb_login();
  67. pass  = kb_smb_password();
  68. dom   = kb_smb_domain();
  69.  
  70. if(!login)login = "";
  71. if(!pass) pass = "";
  72. if(!dom) dom = "";
  73.  
  74. name = kb_smb_name();
  75.  
  76. r = smb_session_request(soc:soc, remote:name);
  77. if(!r){
  78.     #display("smb_session_request failed\n");
  79.     exit(0);
  80.     }
  81.     
  82. prot = smb_neg_prot(soc:soc);
  83. if(!prot)exit(0);    
  84. r = smb_session_setup(soc:soc, login:login, password:pass, domain:dom, prot:prot);
  85. if(!r){
  86.     #display("Session setup failed\n");
  87.     exit(0);
  88.     }
  89.  
  90. uid = session_extract_uid(reply:r);
  91.  
  92. #
  93. # Connect to the remote IPC and extract the TID
  94. # we are attributed
  95. #      
  96. r = smb_tconx(soc:soc, name:name, uid:uid, share:"IPC$");
  97. # extract our tree id
  98. tid = tconx_extract_tid(reply:r);
  99.  
  100.  
  101. #display("TID = ", tid, "\n");
  102.  
  103. pipe = OpenPipeToSamr(    soc:soc, 
  104.                   uid:uid, 
  105.                   tid:tid);
  106.               
  107. #display("PIPE = ", pipe, "\n");
  108. if(!pipe)exit(0);
  109.  
  110. samrhdl = SamrConnect2(    soc:soc, 
  111.                    uid:uid,
  112.                    tid:tid, 
  113.                    pipe:pipe, 
  114.                    name:name
  115.               );
  116.  
  117. if(!samrhdl)exit(0);
  118.  
  119. dom = _SamrEnumDomains(    soc:soc, 
  120.                   uid:uid, 
  121.                   tid:tid, 
  122.                   pipe:pipe, 
  123.                   samrhdl:samrhdl
  124.               );
  125.  
  126. if(!dom)exit(0);
  127.  
  128. sid = SamrDom2Sid(    soc:soc, 
  129.                       uid:uid, 
  130.               tid:tid, 
  131.               pipe:pipe, 
  132.               samrhdl:samrhdl, 
  133.               dom:dom
  134.          );
  135.  
  136.  
  137. samrhdl =
  138.     SamrOpenDomain(    soc:soc, 
  139.             uid:uid, 
  140.             tid:tid, 
  141.             pipe:pipe, 
  142.             samrhdl:samrhdl,
  143.             sid:sid
  144.                );          
  145. if(!samrhdl)exit(0);
  146.  
  147. count = 1;
  148. login = string(get_kb_item(string("SMB/Users/", count)));
  149.  
  150. while(login)
  151. {
  152. rid = SamrLookupNames(  soc:soc, 
  153.             uid:uid, 
  154.             tid:tid, 
  155.             pipe:pipe, 
  156.             domhdl:samrhdl,
  157.             name:login
  158.              );    
  159.  
  160.  
  161. usrhdl = SamrOpenUser(    soc:soc, 
  162.             uid:uid, 
  163.             tid:tid, 
  164.             pipe:pipe, 
  165.             samrhdl:samrhdl,
  166.              rid:rid
  167.              );
  168.             
  169. if(usrhdl)
  170. {            
  171. r = SamrQueryUserInfo(    soc:soc, 
  172.                    uid:uid,
  173.               tid:tid,
  174.               pipe:pipe,
  175.               usrhdl:usrhdl
  176.           );
  177.           
  178. if(r)_SamrDecodeUserInfo(info:r, count:count, type:"Users");
  179. }
  180. count = count + 1;
  181. login = string(get_kb_item(string("SMB/Users/", count)));
  182. }
  183.